Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

277
Visualizações
Angular: obtener parámetros de route.url a veces da como resultado un texto "indefinido"

Tengo una pregunta.

Encontré un error extraño que no puedo reproducir en mi máquina. Mi aplicación tiene un flujo como este:

  1. El usuario hace clic en una URL corta, llama al backend (nodejs) y el backend hará una redirección a la interfaz angular. Por ejemplo a: (https://mysite/#/actpost/param1/param2)
  2. Cada vez que el backend hace un redireccionamiento, lo pongo en log.txt, lo he comprobado y todos parecen estar correctos, redirigiendo a las URL de frontend correctas (sin "cadena indefinida" en la URL)
  3. En el frontend, dividirá la URL para obtener los parámetros y publicará una solicitud en el backend con dichos parámetros. También lo registro en log.txt durante cada llamada posterior (en el backend). El código para obtener los parámetros es el siguiente:
 ngOnInit(): void { this.param1= this.router.url.split('/')[2]; this.param2 = this.router.url.split('/')[3]; //Do a POST request to backend apiCall(param1, param2);

Luego reviso el registro de publicación y aquí es donde encontré el error, a veces param1 en el cuerpo de la solicitud contiene la cadena "indefinido" en lugar de la cadena real de la URL (param1).

Lo que me lleva a esta pregunta: ¿la función del enrutador es asíncrona? También llené param1 y param2 con una cadena vacía antes de intentar obtener parámetros de la URL, por lo que no sé cómo se puede llenar con una cadena "indefinida". También intenté obtener parámetros a través de Route paramMap activado y sigue ocurriendo el mismo problema.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El enrutador es asíncrono, debajo de un ejemplo de código para obtener parámetros de URL.

 private ngOnInit(): void { this.route.queryParams.pipe( map(params => [params['id1'],params['id2']]), tap(([a1,a2]) => {console.log("A1:",a1,"A2:",a2)}), catchError((err) => { return throwError(()=>new Error(`Error : ` + err)) }) ).subscribe({next: ([a1,a2])=>{apiCall(a1,a2)}}); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda